# -*- coding=utf-8 -*-
from selenium.webdriver.support.wait import WebDriverWait


class BaseAction:

    def __init__(self,abc):
        self.driver = abc

    # 自定义一个元素查找方法
    def find_element(self, feature):
        """
        依据用户传入的元素信息特征，然后返回当前用户想要查找元素
        :param feature: 元组类型，包含用户希望的查找方式，及该方式对应的值
        :return: 返回当前用户查找的元素
        """
        wait = WebDriverWait(self.driver, 5, 1)
        return wait.until(lambda x: x.find_element(feature[0], feature[1]))

    def find_elements(self,feature):
        wait = WebDriverWait(self.driver, 5, 1)
        return wait.until(lambda x: x.find_elements(feature[0], feature[1]))

    # 自定义一个元素点击的方法【 这个方法无论是在当前页面还是其它页面都通用 】
    def click(self, feature):
        """
        依据用户传入的元素特征 对其实现点击的操作
        :param feature: 元素的信息元组
        :return:none
        """
        self.find_element(feature).click()

    # 自定义一个函数实现对具体元素进行值的输入
    def input_txt(self, feature, value):
        """
        依据用户传入的元素特征，找到对应的元素，然后在它里面输入我们的传入的 value值
        :param feature: 元组类型，表示元素的特征
        :param value:  用户在元素中输入的内容
        :return: none
        """
        self.find_element(feature).send_keys(value)
